#include <stdio.h>
#include <QByteArray>
#include "Siim_Define.h"
#include <QString>


int GetDataTypeNo(char *pszText)
{
	int i;
	for(i=0; i<sizeof(szDataType)/16; i++)
	{
		if(strstr(pszText,szDataType[i])!=NULL)
			return i;
	}
	return -1;
}

BYTE getCheckSum(BYTE *pData,UINT len)
{
	BYTE bCheckSum = 0;
	for(int i=0;i<len;i++)
	{
		bCheckSum+=pData[i];
	}
	return bCheckSum;
}


QByteArray baReverse(QByteArray ba)
{
	QByteArray reversed;
	int nsize = ba.size();
	reversed.resize(nsize);
	for(int i=0;i<nsize;i++)
	{
		reversed[nsize-i-1] = ba[i];
	}
	return reversed;
}

QByteArray WordToByteArray(WORD wVar)
{
	QByteArray ba((char*)&wVar,2);
	return baReverse(ba);
}

WORD ByteArrayToWord(QByteArray ba)
{
	if(ba.size()<2)
		return 0;
	return ba[0]*0x100+ba[1];
}

QString toUnicode(const char *text)
{
#ifndef WIN32
	QTextCodec *codec = QTextCodec::codecForName("GBK");
	if(codec)
	{
		return codec->toUnicode(text);
	}else{
		qDebug("Waring : Cannot open codec GBK");
		return QString::fromLocal8Bit(text);
	}
#else
	return QString::fromLocal8Bit(text);
#endif
}